const db= require('../db/index')
// 导入加密的包
const bcrypt=require('bcryptjs');
let getuserinfo=(req,res)=>{
    // console.log(req.user.id);
    // 1.sql语句
    const userinfoStr='select id,username,email,nickname,user_pic from ev_users where id=?'
    db.query(userinfoStr,req.user.id,(err,result)=>{
        if(err) return res.cc(err);
        if(result.length!==1) return res.cc('查询失败')
        res.send({
            status:0,
            message:'查询成功',
            data:result[0],
        })
    })
}
let postuserinfo=(req,res)=>{
    // 准备sql语句
    const userinfoStr=`update ev_users set ? where id=?`
    db.query(userinfoStr,[req.body,req.user.id],(err,results)=>{
        if (err) return res.cc(err);
        if(results.affectedRows!==1) return res.cc('更新额用户信息失败')
        res.cc('更新用户信息成功',0)
    })
}
// 修改用户密码
let updatepwd=(req,res)=>{
    // 1.查找看看有没有这个数据
    const updatepwdStr=`select * from ev_users where id=?`;
    // 执行sql
    db.query(updatepwdStr,req.user.id,(err,results)=>{
    // sql语法错误
    if (err) return res.cc(err);
    // 有没有
    if(results.length !== 1) return res.cc('用户不存在请于管理员联系')
    // 有数据再判断旧密码是不是正确
    const flag= bcrypt.compareSync(req.body.oldPwd,results[0].password);
    if(!flag) return res.cc('原密码不正确')
    // 原密码正确 加密新密码准备更新
    const password=bcrypt.hashSync(req.body.newPwd,10);
    // 更新sql语句
    const userinfoStr=`update ev_users set password=? where id=?`
    // 执行sql
    db.query(userinfoStr,[password,req.user.id],(err,results)=>{
    // sql语法错误
    if (err) return res.cc(err);
    // 影响行数
    if(results.affectedRows!==1) return res.cc('修改密码失败')
    res.cc('修改密码成功',0)
    })

    })
}
// 修改用户头像
let updateavatar=(req,res)=>{
    // sql
    const updateavatarStr=`update ev_users set user_pic=? where id=?`
    // 执行sql
    db.query(updateavatarStr,[req.body.avatar,req.user.id],(err,results)=>{
        // sql语法错误
        if (err) return res.cc(err);
        // 影响行
        if(results.affectedRows!==1) return res.cc('头像修改失败')
        res.cc('头像修改成功',0);
    })
}
module.exports ={
    getuserinfo,
    postuserinfo,
    updatepwd,
    updateavatar
}